/***********************************
功  能：简单语句实现流水灯（正向）
编程人：ZZT
版  本：V1.0
时  间：2023/12/19
*************************************/
//头文件声明
#include <reg51.h>
#include <intrins.h>

//函数的声明
void DelayXms(unsigned int Xms);

/***********************************
函数名：main
功  能：主函数
参  数：无
返回值：无
*************************************/
void main()
{
	while(1)
	{
		P2 = 0xFE;			//1111 1110,只点亮第一个灯
		DelayXms(1000);		//延时1s
		P2 = 0xFD;			//1111 1101,只点亮第二个灯
		DelayXms(1000);		//延时1s
		P2 = 0xFB;			//1111 1011,只点亮第三个灯
		DelayXms(1000);		//延时1s
		P2 = 0xF7;			//1111 0111,只点亮第四个灯
		DelayXms(1000);		//延时1s
		P2 = 0xEF;			//1110 1111,只点亮第五个灯
		DelayXms(1000);		//延时1s
		P2 = 0xDF;			//1101 1111,只点亮第六个灯
		DelayXms(1000);		//延时1s
		P2 = 0xBF;			//1011 1111,只点亮第七个灯
		DelayXms(1000);		//延时1s
		P2 = 0x7F;			//0111 1111,只点亮第八个灯
		DelayXms(1000);		//延时1s
		
	}
}

/***********************************
函数名：DelayXms
功  能：延时函数
参  数：unsigned int
返回值：无
*************************************/
void DelayXms(unsigned int Xms)		//@11.0592MHz
{
	unsigned char i, j;

	while(Xms--)
	{
		_nop_();
		i = 2;
		j = 199;
		do
		{
			while (--j);
		} while (--i);
	}
}
